# Dockerfile

# ---- 阶段 1: 构建应用 ----
# 使用一个完整的 Node.js 镜像来构建我们的前端项目
FROM node:18-alpine AS builder

WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./
# 安装依赖
RUN npm install

# 复制所有源代码
COPY . .
# 执行构建命令
RUN npm run build


# ---- 阶段 2: 打包 Nginx 和构建产物 ----
# 使用一个轻量的 Nginx 镜像作为最终的基础镜像
FROM nginx:stable-alpine

# 从 builder 阶段复制构建好的静态文件到 Nginx 的默认目录
COPY --from=builder /app/dist /usr/share/nginx/html

# 复制我们自定义的 nginx.conf 到 Nginx 的配置目录
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露 80 端口
EXPOSE 80 

# 启动 Nginx (nginx 镜像默认会执行此命令，所以可以省略)
CMD ["nginx", "-g", "daemon off;"]
